package tests;
import modelo.*;
import junit.framework.TestCase;
import utilitarios.PuntoXY;

public class PruebasPared extends TestCase {
	
	protected Escenario escenario;
	
	@Override
    public void setUp() {
		escenario = new Escenario(300, 300);
	}
	
	public void testSiUnaParedDeConcretoRecibeUnImpactoSeDestruye() {
		
		// ARRANGE
		ParedDeConcreto pared = new ParedDeConcreto(escenario, new PuntoXY(30, 30));
		int unDanio = 1;
		
		// ACT
		pared.recibirDanio(unDanio);
		
		// ASSERT
		assertEquals(0.0, pared.getResistencia());
		assertEquals(true, pared.debeMorir());
		}
	
	public void testSiUnaParedDeMetaloRecibeUnImpactoNoSeDestruye() {
		
		// ARRANGE
		ParedDeMetal pared = new ParedDeMetal(escenario, new PuntoXY(30, 30));
		int unDanio = 1;
		
		// ACT
		pared.recibirDanio(unDanio);
		
		// ASSERT
		assertEquals(1.0, pared.getResistencia());
		assertEquals(false, pared.debeMorir());
	}
	
	public void testSiUnaParedDeMetaloRecibeDosImpactosSeDestruye() {
		
		// ARRANGE
		ParedDeMetal pared = new ParedDeMetal(escenario, new PuntoXY(30, 30));
		int unDanio = 1;
		
		// ACT
		for (int i = 1; i < 3; i++) {
			pared.recibirDanio(unDanio);
		}
		
		// ASSERT
		assertEquals(0.0, pared.getResistencia());
		assertEquals(true, pared.debeMorir());
		
	}
	
}
